<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"  
    xmlns:h="http://java.sun.com/jsf/html"  
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui"
    template="/plantillas/plantilla-sistema.xhtml">
    <ui:define name="cabecera">
        <title>Sistema de registro de especímenes de zoología</title>
    </ui:define>
    <ui:define name="contenido">
      <center>
      <h:form id="tablaRolFrm"> 
                   <p:dataTable emptyMessage="No hay registros disponibles."
                                id="tablaRolDtb" var="rol" value="#{rolBean.listaRoles}" 
                                resizableColumns="true" paginator="true" paginatorPosition="bottom" rows="10" 
                                rowKey="#{rol.codigorol}" style="font-size: 80%">
                       
                            <p:column filterBy="#{rol.nombre}" sortBy="#{rol.nombre}"   
                                headerText="Rol" filterMatchMode="contains">
                                <h:outputText value="#{rol.nombre}"  />
                            </p:column>
                            <p:column filterBy="#{rol.descripcion}"  sortBy="#{rol.descripcion}"  
                                headerText="Descripción" filterMatchMode="contains">
                                <h:outputText value="#{rol.descripcion}" />
                            </p:column>
                            <!--<p:column headerText="Privilegios">
                                <center>
                                <p:commandButton id="privilegiosBtn"
                                                 type="button"
                                                 icon="ui-icon-search"
                                                 oncomplete="privilegiosPnl.show()"/>
                                <p:overlayPanel id="tablaPrivilegioOpn" for="privilegiosBtn" appendToBody="true" dynamic="true" showEvent="mouseup" hideEvent="mouseup">
                                    <p:dataTable id="table" var="privilegio" value="#{rolBean.listaPrivilegios}" rows="10" paginator="true" editable="true">  
                                        <p:ajax event="rowEdit" listener="#{rolBean.actualizarPrivilegio}" update="@form" /> 
                                        
                                        <p:column headerText="Acción">  
                                            <h:outputText value="#{privilegio.key.accion}" />  
                                        </p:column>   
                                        
                                        <p:column headerText="Permitido">  
                                            <p:cellEditor>  
                                                <f:facet name="output">  
                                                    <h:outputText value="#{(privilegio.value == true ? 'Habilitado' : 'Deshabilitado') }" />  
                                                </f:facet>  
                                                <f:facet name="input">  
                                                    <h:selectOneMenu value="#{privilegio.value}" >  
                                                        <f:selectItem 
                                                            itemLabel="Habilitado"  
                                                            itemValue="true" />  
                                                        <f:selectItem 
                                                            itemLabel="Deshabilitado"  
                                                            itemValue="false" />
                                                    </h:selectOneMenu>  
                                                </f:facet>  
                                            </p:cellEditor>
                                        </p:column>
                                        
                                        <p:column headerText="Opciones" style="width:50px">  
                                            <p:rowEditor />  
                                        </p:column>  
                                    </p:dataTable>  
                                </p:overlayPanel>
                                </center>
                            </p:column>-->
                            <p:column headerText="Modificar" > 
                                <center>
                                    <p:commandButton id="modificarBtn" title="Modificar" icon="ui-icon-pencil"
                                                 actionListener="#{rolBean.prepararModificacion(rol)}" 
                                                 update=":guardarRolFrm:guardarRolPnl" 
                                                 oncomplete="guardarRolWgt.show()"/>
                                </center>
                            </p:column>
                            <p:column headerText="Eliminar" >
                                <center>
                                    <p:commandButton id="eliminarBtn" title="Eliminar" icon="ui-icon-trash"
                                                 actionListener="#{rolBean.prepararEliminacion(rol)}" 
                                                 update="@form" 
                                                 oncomplete="confirmacionWgt.show()"  />
                                </center>
                            </p:column>
                           <f:facet name="footer">
                               <p:commandButton value="Nuevo rol" 
                                                actionListener="#{rolBean.prepararAdicion}" 
                                                update=":guardarRolFrm:guardarRolPnl" 
                                                oncomplete="guardarRolWgt.show()" />
                        </f:facet>
                        </p:dataTable>
                    </h:form>
     </center>
        
    </ui:define>  
    
    <ui:define name="extra">
        
          <p:dialog id="guardarRolDlg" header="Gestionar Taxonomía" widgetVar="guardarRolWgt" 
                    resizable="false" modal="true" showEffect="false" width="850">
            <h:form id="guardarRolFrm">
                
                <h:panelGrid id="guardarRolPnl" columns="6" style="margin-bottom:10px; font-size: 80%">
                    
                    <p:outputLabel for="nombreTxt" value="Nombre:" />
                    <p:inputText id="nombreTxt" value="#{rolBean.rol.nombre}"/> 
                    
                    <p:outputLabel for="descripcionTxt" value="Descripción:" />
                    <p:inputText id="descripcionTxt" value="#{rolBean.rol.descripcion}"/> 
                    
                    <p:commandButton id="agregarRolBtn" actionListener="#{rolBean.agregarRol}" oncomplete=":guardarRolWgt.hide()" update=":tablaRolFrm:tablaRolDtb" value="Agregar"/>
                    <p:commandButton id="modificarRolBtn" actionListener="#{rolBean.actualizarRol}" oncomplete=":guardarRolWgt.hide()" update=":tablaRolFrm:tablaRolDtb" value="Actualizar"/>
                    
                </h:panelGrid>
                   
            </h:form>
        </p:dialog>
        
        <p:confirmDialog id="confirmacionDlg" 
                         message="Esta seguro que desea eliminar el registro?" 
                         header="Confirmación" 
                         widgetVar="confirmacionWgt" 
                         severity="alert"
                         width="300">
                    <p:commandButton id="eliminarRolBtn" actionListener="#{rolBean.eliminarRol}" 
                                     oncomplete="dialogoWgt.hide()" 
                                     update=":tablaRolFrm:tablaRolDtb" value="Eliminar"/>
                    <p:commandButton type="button" oncomplete="confirmacionWgt.hide()" value="Cancelar"/>
        </p:confirmDialog>
        
        
    </ui:define>
    
</ui:composition>
